草庐IT

Android isScreenOn Nullpointer异常

全部标签

c++ - 使用 Pthreads 捕获异常

虽然这个问题不限于OpenKinect库,但它是我能想出的最好的例子来展示它。在OpenKinect的C++包装器中,每当出现问题时,它都会抛出runtime_error异常。这个例子来自libfreenect.hpp。线程在类的构造函数中创建。//Donotcalldirectly,threadrunsherevoidoperator()(){while(!m_stop){if(freenect_process_events(m_ctx)(user_data);(*freenect)();returnNULL;}我的问题很简单:是否有可能以某种方式捕获并处理这些错误?通常,我会处理异

c++ - boost::signals2 和异常处理

有什么方法可以覆盖在boost::signals2中调用槽的特定时刻并执行某些操作(记录、调试、异常处理)?我想在插槽调用时捕获异常,因为信号/插槽是我代码中的执行路径在各种软件组件之间交叉的地方,并且每个组件都是可选的/可以在运行时禁用如果它行为不端。因此,当插槽调用抛出(可能来自外部库,可能只是std::bad_alloc)时,我希望收到有关它的通知——并知道哪个组件被发送信号——这样我就可以终止该组件。我不知道如何在组合器中执行此操作,因为我无权访问那里的插槽或连接对象?所以我看不到获取任何信息的方法。(更改每个插槽的返回类型是不可行的。)有没有我错过的super简单的方法?如果

c++ - 单元测试失败,异常代码为 c0000005

我正在尝试使用native单元测试项目在VisualStudios2012中创建单元测试。这是我的测试:TEST_METHOD(CalculationsRoundTests){intresult=Calculations::Round(1.0);Assert::AreEqual(1,result);}导出类:#ifdefEXPORT_TEST_FUNCTIONS#defineMY_CALCULATIONS_EXPORT__declspec(dllexport)#else#defineMY_CALCULATIONS_EXPORT#endif...classCALCULATIONS_EXP

c++ - 未处理的异常 C++ - VS2012

如果从我的代码中抛出std::exception,测试资源管理器将只显示“消息:未处理的C++异常”。不过,它确实显示了正确的堆栈跟踪。是否可以让测试资源管理器显示来自std::exception的what()方法的消息? 最佳答案 什么方法只会告诉你异常的名称。可能有一些类似于java的方法,如堆栈跟踪。 关于c++-未处理的异常C++-VS2012,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/

c# - C# COMponent 引发的异常消息是否通过互操作传递给 C++?

如果我在C#类中实现一个COM接口(interface),它将被C++模块调用,那么在失败的情况下,C#代码应该抛出异常;这将由互操作层编码为HRESULT故障代码。但是传递给异常构造函数的任何消息文本(或其他信息)是否也可用于调用C++代码?如果是,如何获取它,即哪些API方法?例如如果在我的C#代码中我确实thrownewArgumentException("Theemailaddressisinvalid")我会排除我的COMHRESULT为E_INVALIDARG但是我的自定义文本会被编码还是我可以只查找E_INVALIDARG的文本描述吗? 最佳答

c++ - 使用 throw_with_nested 并捕获嵌套异常

我真的很喜欢c++11中的std::throw_with_nested,因为它模拟了java的printStackTrace()但现在我只是好奇如何捕获嵌套异常,例如:voidf(){try{throwSomeException();}catch(...){std::throw_with_nested(std::runtime_error("Insidef()"));}}voidg(){try{f();}catch(SomeException&e){//IwanttocatchSomeExceptionhere,notstd::runtime_error,:(//dosomething

c++ - std::thread 在使用参数创建时抛出访问冲突异常?

关闭。这个问题需要debuggingdetails.它目前不接受答案。编辑问题以包含desiredbehavior,aspecificproblemorerror,andtheshortestcodenecessarytoreproducetheproblem.这将有助于其他人回答问题。关闭6年前。Improvethisquestion我正在使用VS2015,在使用std::thread时遇到一个非常奇怪的问题。voidKlass::myfunc(inta,intb){std::cout它在Debug模式下运行良好,但当我转到Release模式时抛出“访问冲突异常”。此外,如果我尝试将

c++ - 在 C++ 中什么可以(什么不能)抛出异常?

在C++中是否有可能导致异常的“代码语句”的完整列表(可能是递归定义的)?像这样:1)throw语句(自然地)2)调用new3)调用标准库中记录为能够抛出的任何函数。4)调用包含1-3操作的任何用户定义函数(包括构造函数)。5)还有什么?在堆栈上分配本地对象、对内置类型进行操作、取消引用指针、类型转换-它们能够抛出异常吗?6)其他一切都没有异常。我所说的无异常并不是指总是成功的操作。取消引用指针肯定不是。但是将它包装在try-catchblock中仍然没有意义,考虑函数取消引用指针的异常安全性等。因此可以考虑成功或导致未定义行为的代码作为无异常。更新。尽管我在上一段中仍然收到评论说未定

c++ - 异常被 Win32 消息调度程序捕获的问题

这是一个非常低级的问题,但也许这里有人有一些见解......我遇到了一个问题,未处理的SEH异常(例如访问冲突)似乎在Win32消息调度级别被捕获,而不是终止程序。我找到了以下引用博客,它解释了问题,但仅在WM_TIMER消息的上下文中:http://bugswar.blogspot.com/2010/07/why-its-not-crashing.html我在Win2008R2和“正常”消息(例如:WM_COMMAND等)上遇到了问题。我怀疑可能是Windows试图通过屏蔽异常来“帮助”,但我希望它出错;“继续并忽略”行为通常会导致应用程序出现问题。我意识到我可以尝试将每个函数包装在

Hadoop加密区远程异常

我正在尝试在空目录/enc_zone2中创建一个加密区。这是我正在使用的命令hdfscrypto-createZone-keyNamekey2-path/enc_zone2当我尝试查看使用密钥列表时hadoopkeylist-metadata我可以看到Key2的元数据。但是,我在创建区域时遇到的错误是"RemoteException:Can'tcreateanencryptionzonefor/tempsincenokeyproviderisavailable."但是,KMS服务器已经在端口16000中启动和运行。此外,列出键和列表区域正在工作的命令,这意味着密钥培训者正在工作。这是名称节点的